//package com.daxue.se.juc.day01;
//
//import lombok.AllArgsConstructor;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//import lombok.experimental.Accessors;
//
//import java.util.List;
//import java.util.concurrent.*;
//import java.util.stream.Collectors;
//
///**
// * @author daxue0929
// * @date 2022/9/14
// */
//
//public class CompletableDemo {
//
//
//
//
//    public static void main(String[] args) {
//
//        ExecutorService threadPool = Executors.newFixedThreadPool(3);
//
//        CompletableFuture.supplyAsync(() -> {
//            try {TimeUnit.MILLISECONDS.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}
//            return "1231";
//        }, threadPool).whenComplete((v, e) ->{
//            if (e == null) {
//                System.out.println(v);
//            }
//        }).exceptionally(e -> {
//            e.printStackTrace();
//            System.out.println(e.getMessage());
//            return null;
//        });
//
//        threadPool.shutdown();
//    }
//
//
//
//    public static List<String> getPriceByCompletableFuture(List<NetMall> list, String productName) {
//        return list.stream().map(netMall ->
//            CompletableFuture.supplyAsync(()->String.format(productName + "in %s price is %.2f",
//                netMall.getNetMallName(),
//                netMall.calcPrice(productName))))
//            .collect(Collectors.toList())
//            .stream()
//            .map(s -> s.join())
//            .collect(Collectors.toList());
//    }
//}
//
//@NoArgsConstructor
//@AllArgsConstructor
//@Accessors(chain = true)
//@Data
//class NetMall{
//    private String netMallName;
//
//    double calcPrice(String name) {
//        return Math.random();
//    }
//}
//
//
//class MyThreadDemo implements Callable<String> {
//
//    @Override
//    public String call() throws Exception {
//        return "";
//    }
//}
